1. Field of the Invention
The present invention relates generally to an apparatus and method for detecting a data rate, and in particular, to an apparatus and method for detecting a data rate of a turbo decoder in a mobile communication system.
2. Description of the Related Art
In general, an encoder and a decoder are used in a digital mobile communication system to correct an error of a forward channel. The digital mobile communication system transmits and receives data in a radio environment, so it employs a coding technique to prevent generation of noises in a transmission channel. The mobile communication system typically uses a turbo coding technique for the coding technique. 3GPP (3rd Generation Partnership Projection) or 3GPP2 (3rd Generation Partnership Projection 2), an ongoing standardization work on the mobile communication system, specifies that transmission data can be transmitted at different data rates. Here, the data rate depends upon a length (or size) of a frame decoded by a turbo decoder. For example, a data rate of 2.4 Kbps corresponds to a decoded frame length of 24 bits/frame, and a data rate of 4.8 Kbps corresponds to a decoded frame length of 48 bits/frame.
When transmitting data at various data rates, a transmitter generally transmits the data to a receiver along with information on a data rate of the currently transmitted data. However, transmitting the data along with the data rate of the transmission data causes a waste of transmission power, especially when the transmission data has a low data rate. Therefore, there is a demand for a method for transmitting data without information on its data rate.
There is a known blind rate detection (BRD) technique, in which a transmitter transmits data without information on its data rate and a receiver detects the data rate based on only the received data. When data is transmitted in the BRD mode after being subject to turbo encoding the results of CRC (Cyclic Redundancy Code) checking performed on an output of a turbo decoder are typically used to detect a data rate.
That is, the transmitter adds CRC information to transmission data before transmission. Then, a channel decoder of the receiver decodes the received data at all of its available data rates and determines whether the decoded data includes noises, through CRC checking. If it is determined through the CRC checking performed at a specific data rate that the frame is not damaged, the receiver detects the corresponding data rate. A procedure for detecting a data rate by the receiver using the CRC checking will be described in detail with reference to FIG. 1.
FIG. 1 illustrates a procedure for detecting a data rate by a receiver through CRC checking of the BRD technique in a mobile communication system according to the prior art. A detailed description of the conventional procedure for detecting a data rate will now be made with reference to FIG. 1.
In step 10, the receiver performing the turbo decoding receives frame data over a radio channel. In this procedure, a description of a radio processing process and a channel decoding process will not be provided. After receiving the frame data, the receiver sets count values i and j to ‘0’, in step 12. Here, i represents a value for counting a decoding iteration number (or decoding frequency) to perform turbo decoding on one frame at a selected data rate. Further, j represents a value for counting the number of types of the data rates. That is, if the turbo decoding is iteratively performed 6 times, the i value represents a decoding iteration count value for limiting the turbo decoding to be performed up to 6 times, and if the number of the types of the data rates is 7, the j value represents a data rate type count value for performing the decoding at up to 7 data rates.
After the step 12, the receiver sets an iteration limit number to its maximum value in step 14. Here, the “iteration limit number” refers to the maximum number of iterative decoding at a specific data rate, i.e., a value for setting a threshold for the iteration count value ‘i’ of the turbo decoder. In step 16, the receiver performs turbo decoding at a data rate set to the j value. For example, if decoding on voice data is performed at 2 Kbps, 4 Kbps and 8 Kbps, then the receiver performs the decoding on the data with a frame length FL(j) associated with 2 Kbps or 8 Kbps, whichever determined first. That is, the receiver performs the decoding at one initial data rate.
After the decoding, the receiver analyzes the result of CRC checking performed on the decoded data in step 18. As the result of the analysis, if it is determined that the CRC is ‘good’, the receiver performs a data rate detection process for the current j value in step 20. Otherwise, the receiver determines whether the decoding iteration count value i is less than the iteration limit number, in order to iterate the decoding up to the iteration limit number. As the result of the determination, if the decoding iteration count value i is less than the iteration limit number, the receiver proceeds to step 24, and otherwise, proceeds to step 26. In the step 24, the receiver increases the decoding iteration count value i by 1, and then returns to the step 16. The reason for iteratively performing the decoding at one data rate will be described with reference to FIGS. 2 and 3.
FIG. 2 illustrates distribution of a decoding state value m(i) indicating the quality of a data frame when data with a frame size 60 transmitted over a radio channel is subject to iterative turbo decoding by a turbo decoder with a frame size 60. FIG. 3 illustrates distribution of an m(i) value when data with a frame size 40 transmitted over a radio channel is subject to iterative turbo decoding by a turbo decoder with a frame size 60.
In FIG. 2, a part represented by a solid line represents a part having an m(i) value of correctly decoded frame, while a part represented by dots represents an incorrectly decoded part. When performing the decoding for second time, the receiver iteratively performs the decoding for restoration, using the incorrectly decoded frames represented by the dots. Then, the incorrectly decoded frames are divided again into restored frames and non-restored frames, as shown in a second graph of FIG. 2. If the process is iterated several times, the frame data will be more correctly decoded, thus increasing a probability that the CRC will be detected in a ‘good’ state. However, in the case where the data is decoded with a frame length associated with another data rate, even though the decoding is performed several times, the decoding results will continuously show an error state as shown in FIG. 3.
Turning back to FIG. 1, the iterative limit number is typically set to 6. If the CRC is not ‘good’ after iterating the decoding six times at one data rate, the receiver determines in step 26 whether the data rate type count value j is larger than the number N of the data rates. As the result of the determination, if the data rate type count value j is not less than the number N, e.g., 3, of the data rates, the receiver proceeds to step 28 to perform a data rate detection failure process, considering that the decoding and the CRC checking have been completed for all of the available data rates. However, if the count value j indicates that the decoding has not yet performed at all of the data rates, i.e., if the j value is less than N, the receiver increases the count value j by 1 and sets the decoding iteration count value i to 0 in step 30, and then returns to the step 16 to repeat the steps 16 to 30.
However, the turbo decoding technique for detecting a data rate through the above process causes a waste of time in detecting the data rate, especially when there is a great difference between a data rate at which the data frame has been transmitted and the initial data rate at which the turbo decoding is performed. That is, for example, if it is assumed that the number of the data rates to be detected is N and the iteration number is 8, the decoding is performed (N−1)*8 times at the worst. In addition, an increase in the number of the data rates for the transmission data causes an increase in the detection time and also causes an increase in power consumption for detecting the data rate.